package com.res.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import com.res.entity.Student;
import com.res.service.impl.StudentServiceImpl;
import com.res.util.FenyeUtil;

@RestController
@RequestMapping("/student")
public class StudentController {

	@Autowired
	private StudentServiceImpl stuService;
	@GetMapping
	public Object getAll(Student s,Integer sid,Integer limit,Integer page) {
		
		//配置pageable 因为查询去掉复制id为1的数据 limit少1 所以又加1
		Pageable pageable=PageRequest.of(page-1, limit+1);
        //利用fenye工具类把数据返回到页面
		FenyeUtil<Student> f=new FenyeUtil<>();
		
		//存储data 和count
		f.setData(stuService.getStudentAll(s, pageable, sid).getContent());
		f.setCount((int) stuService.getStudentAll(s, pageable, sid).getTotalElements()-1);
		//去掉stuid为1的辅助数据
		List<Student> ls = new ArrayList<Student>();
		for(int i=0;i<f.getData().size();i++) {
			if(f.getData().get(i).getStuid()==1) {
				
			}else {
				ls.add(f.getData().get(i));
			}
		}
		System.out.println(ls);
		f.setData(ls);		
		
		return f;
	}
	
	//添加方法
	@PostMapping
	public Object addStudent(Student s,Integer sid) {
		
		return stuService.addStudent(s,sid);
	}
	//修改方法
	@PutMapping
	public Object updateStudent(Student s,Integer sid) {
		
		return stuService.updateStudent(s,sid);
	}
	
	//删除方法
	@DeleteMapping
	public Object deleteStudent(Integer stuid) {
		
		return stuService.deleteStudent(stuid);
	}
}
